package com.shark.uh.service;

/**
 * redis 服务
 *
 * @author zwb
 * @since 2025-02-05
 */
public interface RedisService {
    /**
     * 存入redis并设置时间（秒）
     *
     * @param key     键
     * @param value   值
     * @param timeout 过期时间
     */
    void saveToRedisSecond(String key, String value, long timeout);

    /**
     * 存入redis并设置时间（分钟）
     *
     * @param key     键
     * @param value   值
     * @param timeout 过期时间
     */
    void saveToRedisMinute(String key, String value, long timeout);

    /**
     * 存入redis并设置时间（小时）
     *
     * @param key     键
     * @param value   值
     * @param timeout 过期时间
     */
    void saveToRedisHour(String key, String value, long timeout);

    /**
     * 存入redis并设置时间（天）
     *
     * @param key     键
     * @param value   值
     * @param timeout 过期时间
     */
    void saveToRedisDay(String key, String value, long timeout);

    /**
     * 存入redis并设置时间（周）
     *
     * @param key     键
     * @param value   值
     * @param timeout 过期时间
     */
    void saveToRedisWeek(String key, String value, long timeout);

    /**
     * 存入redis并设置时间（月）
     *
     * @param key     键
     * @param value   值
     * @param timeout 过期时间
     */
    void saveToRedisMonth(String key, String value, long timeout);

    /**
     * 存入redis并设置时间（年）
     *
     * @param key     键
     * @param value   值
     * @param timeout 过期时间
     */
    void saveToRedisYear(String key, String value, long timeout);

    /**
     * 从redis中取值
     *
     * @param key 键
     */
    Object get(String key);

    /**
     * 从redis中取值
     *
     * @param key 键
     */
    String getString(String key);
    /**
     * 从redis中删除值
     *
     * @param key 键
     */
    void del(String key);

}
